package com.gzpi.hwgggh.mapper;

import com.gzpi.hwgggh.entity.GGP;
import com.gzpi.hwgggh.utils.PageBean;
import com.gzpi.hwgggh.vo.StatisticsGraphVo;
import org.apache.ibatis.annotations.Param;
import org.yaml.snakeyaml.events.Event;

import java.util.List;
import java.util.Map;
import java.util.logging.Handler;

/**
 * @date : 2020-12-18 14:58
 **/
public interface GGPMapper {

    /**
     * 新增广告牌信息 tableName（GGP_C，GGP_X，GGP_G）
     * @param ggp
     * @return
     */
    public int insertGgp(GGP ggp);

    /**
     * 按ID查询广告牌是否存在
     * @param ID
     * @param tableName （GGP_C，GGP_X，GGP_G）
     * @return
     */
    public int selectGgpByIdisexist(@Param("GGBH") String GGBH,@Param("FID") String FID,@Param("tableName") String tableName);

    /**
     * 修改广告牌信息 tableName（GGP_C，GGP_X，GGP_G）
     * @param ggp
     * @return
     */
    public int updateGgp(GGP ggp);

    /**
     * 修改广告牌信息 tableName（GGP_C，GGP_X，GGP_G）
     * @param ggp
     * @return
     */
    public int updateById(GGP ggp);


    /**
     * 分组统计广告牌数量
     * @return
     */
    public List<Map> GroupCountGGP(StatisticsGraphVo statisticsGraphVo);

    /**
     * 规划措施 ggp_c 和 ggp_g 合并查询
     * @param graphVo
     * @return
     */
    List<Map> GroupGhcsUnionAll(StatisticsGraphVo graphVo);

    /**
     * 分组统计点位数量
     * @return
     */
    public List<Map> GroupCountDW(StatisticsGraphVo statisticsGraphVo);

    /**
     * 根据map条件查询ggp信息
     * @param map
     * @return
     */
    List<GGP> selectGGPByMap(Map<String,Object> map);


    /**
     * 根据map条件获取规格尺寸信息
     * @param graphVo
     * @return
     */
    List<String> selectGGCCByVo(StatisticsGraphVo graphVo);


    /**
     * 获取现状最大广告牌id
     * @param dwbh 点位编号
     * @param tableName （GGP_C，GGP_X，GGP_G）
     * @return
     */
    String selectGGPMaxID(@Param("FID") String FID,@Param("tableName") String tableName);

    /**
     * 删除广告牌
     * @param id 广告牌编号
     * @param tableName  （GGP_C，GGP_X，GGP_G）
     * @return
     */
    int deleteGgp(@Param("GGBH")String GGBH,@Param("FID")String FID, @Param("tableName")String tableName);

    /**
     * 获取根据广告编号获取广告牌信息
     * @param ghid 广告牌编号
     * @param tableName （GGP_C，GGP_X，GGP_G）
     * @return
     */
    GGP selectGGPOneByGgbhAndFid(@Param("GGBH")String GGBH, @Param("FID")String FID, @Param("tableName") String tableName);

    /**
     * 获取根据广告编号获取广告牌信息
     * @param ghid 广告牌编号
     * @param tableName （GGP_C，GGP_X，GGP_G）
     * @return
     */
    GGP selectGGPOneById( @Param("ID")String ID, @Param("tableName") String tableName);

    /**
     * 修改广告牌编号
     * @param originalId 原编号
     * @param presentId 新编号
     * @param tableName （GGP_C，GGP_X，GGP_G）
     * @return
     */
    int updateGGPID(@Param("originalId")String originalId,@Param("presentId")String presentId,@Param("tableName") String tableName,@Param("FID") String FID);

    /**
     * 获取点位FID
     * @param fid
     * @param targetTable
     * @param originTable
     * @return
     */
    String selectDWID(@Param("fid")String fid, @Param("targetTable")String targetTable, @Param("originTable")String originTable);

    /**
     * 获取现状点位id
     * @param fid
     * @param originTable
     * @return
     */
    String selectDWXID(@Param("fid")String fid, @Param("originTable")String originTable);

    /**
     * 获取广告牌唯一ID
     * @param GGBH
     * @param FID
     * @param tableName
     */
    String selectGGPID(@Param("GGBH")String GGBH,@Param("FID")String FID, @Param("tableName")String tableName);

    /**
     * 根据map条件判断广告牌是否存在
     * @param map
     * @return
     */
    int selectCountByMap(Map<String, String> map);


    /**
     * 根据map条件修改规格尺寸
     * @param map
     * @return
     */
    int updateGgpGGCC(Map<String, String> map);

    /**
     * 根据map条件新增规格尺寸
     * @param map
     * @return
     */
    int insertGgpGGCC(Map<String, String> map);

    List<Map<String, String>> selectGGCCList(@Param("FID") String fid,@Param("tableName") String tableName);

    List<Map<String, String>> selectGGBHList(@Param("FID") String fid,@Param("tableName") String tableName);

    /**
     * 删除key值不包含list的广告牌
     * @param fid
     * @param notKey
     * @param tableName
     * @return
     */
    int deleteGgpNotInKey(@Param("FID") String fid,@Param("notKey") List<String> notKey,@Param("tableName") String tableName);

    /**
     * 删除广告牌信息
     * @param fid
     * @param tableName（GGP_C，GGP_X，GGP_G）
     * @return
     */
    int deleteGGPByFid(@Param("FID")String FID, @Param("tableName")String tableName);

}
